(function( $, undefined ) {

/*
	\name ru Checkbox
	\description ru Флажок выбора да/нет.
	\is_container 0
	\save true
*/
$.widget("ui.ajajform_checkbox",$.ui.ajajform_widget, {
	options: {
		// \type cssclass
		cssclass: "afw-checkbox",
		// \type text
		// \name ru Значение
		// \description ru Значение, 0 или 1
		value: "",
		// \type text
		htmltemplate: '<div class="af-label"></div><div class="af-edit"><input type="checkbox" value="1"/><div class="af-error"></div></div><div style="clear: both;"></div>',
		// \type text
		label: "",
		// \type function
		validate: null,
		readonly: false
	},
	_create: function() {
		this.element.addClass(this.options.cssclass);
		var t=this.options.htmltemplate;
		this.element.append(t);
		this.refreshLabel();
		this.refreshValue();
		this.refreshReadonly();
	},
	refreshReadonly: function() {
		$("input",this.element).prop('readonly',this.options.readonly);
	},
	refreshValue: function() {
		var sel=$("input",this.element);
		if (this.options.value && this.options.value!="0") sel.prop("checked",true); else sel.prop("checked",false);
	},
	refreshError: function(e) {
		$(".af-error",this.element).text(e==null?"":e);
	},
	refreshLabel: function() {
		$(".af-label",this.element).text(this.options.label);
	},
	destroy: function() {
	},
	validate: function() {
		var vd=this.options.validate;
		var inp=$("input",this.element);
		if (!vd) return false;
		var r=vd(inp.prop("checked"));
		if (r) inp.addClass("ui-state-error"); else inp.removeClass("ui-state-error");
		this.refreshError(r);
		return r?true:false;
	},
	postvalue: function(r) {
		var sel=$("input",this.element);
		if (sel.prop("checked")) r[this.options.name]=sel.val(); else r[this.options.name]=0;
	}
});

})( jQuery );
